import time
from public.action import *
from public.business import *
from public.testData import *
from public.tools import*

testCase = "DBshop002_余额支付流程"
# 调用自定义函数打开网页,url的值是在testData文件中定义的
driver = openBrowser(url)
# 调用自定义函数进行登录
DBshopLogin(driver,userName,password)
# 在首页的搜索框输入小米
driver.find_element_by_xpath("//input[@name='keywords']").send_keys("小米")
# 点击搜索按钮
driver.find_element_by_xpath("//input[@type='submit']").click()
# 点击商品图片弹出新页面
driver.find_element_by_xpath("//a[@href='/dbshop/goods/8/2']").click()
# 调用函数切换页面
switchWindow(driver,2)
# 在新页面中点击加入购物车按钮
driver.find_element_by_id("add_cart_submit").click()
time.sleep(2)
# 点击去购物车结算按钮
driver.find_element_by_link_text("去购物车结算").click()
# 3.点击"去结算"按钮
driver.find_element_by_link_text("去结算").click()
# 默认地址已经被选择,点击下一步按钮
driver.find_element_by_xpath("//input[@value='下一步']").click()
# 支付方式选择"余额支付"
driver.find_element_by_xpath("//input[@value='yezf']").click()
# 点击确认订单
driver.find_element_by_xpath("//input[@value='确认订单']").click()
# 使用变量orderNO存储订单编号
orderNO = driver.find_element_by_xpath("(//font[@color='color:#ED145B'])[2]").text
rootPath = get_pro_rootpath()
writeFile(rootPath+"\public\order1.txt",orderNO) # 将订单编号写入到文件中

# 点击“马上去支付”
driver.find_element_by_xpath("//input[@value = '马上去支付']").click()

# 调用自定义函数进行后台的登录
driver.get(urlAdmin)
# 输入账号密码 登录后台
DBshopLoginAdmin(driver)
# 进入销售管理订单管理,找到刚才前台提交的订单
# 调用后台的菜单操作函数
DBshopEnterMenu2(driver,"销售管理","订单管理")
# 搜索出订单，点击编辑查看
driver.find_element_by_name("order_sn").send_keys(orderNO)
driver.find_element_by_xpath("//button").click()
driver.find_element_by_link_text("编辑查看").click()
# 点击"发货操作"按钮
driver.find_element_by_link_text("发货操作").click()
# 输入快递单号"00100001111"
driver.find_element_by_id("express_number").send_keys("00100001111")
# 输入操作说明"已发货"
driver.find_element_by_id("state_info").send_keys("已发货")
# 点击"点击发货"按钮
driver.find_element_by_xpath("//button").click()

# 到dbshop前台我的订单中完成收货
driver.get(url)
# 点击我的订单
driver.find_element_by_link_text("我的订单").click()
# 点击已发货
driver.find_element_by_partial_link_text("已发货").click()
# 搜索下单时的订单号
driver.find_element_by_name("search_order_sn").send_keys(orderNO)
# 点击搜索
driver.find_element_by_xpath("//button").click()
# 点击确认收货
driver.find_element_by_xpath("//button[text()='确认收货']").click()
# 点击确认收货
driver.find_element_by_xpath("//button[@type='submit']").click()
# 处理js弹框
driver.switch_to.alert.accept()

# 到dbshop前台查看我的订单"交易完成"中,检查上面的订单状态
# 点击交易完成
driver.find_element_by_partial_link_text("交易完成").click()
# 查询订单号
driver.find_element_by_name("search_order_sn").send_keys(orderNO)
# 点击搜索
driver.find_element_by_xpath("//button").click()
# 断言
try:
    # is_displayed()函数判断元素是否显示
    driver.find_element_by_link_text(orderNO).is_displayed()
    writeLog("%s 测试通过"%testCase)
except:
    writeLog("%s 测试失败" % testCase)
    getPhoto(driver)
driver.quit()
